package com.wjm;

import com.wjm.until.JdbcUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Data:2022年09月06日
 * Author:wjm
 * Content:
 *          练习：向user表中新增1001条用户数据,可以使用批量操作完成要求每20条sql语句为一批,整体发送到mysql执行
 */
public class JdbcText {
    public static void main(String[] args) {
        try(Connection connection = JdbcUtil.getConnection()){
            //sql
            String sql = "insert into users value(?,?,?);";

            //创建语句对象
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            for (int i=1;i<1001;i++){
                //给占位符（？）赋值
                preparedStatement.setInt(1,i);
                preparedStatement.setString(2,"name"+i);
                preparedStatement.setString(3,"pwd"+i);

                //将sql语句装入sql语句列表
                preparedStatement.addBatch();

                //当i与20取余等于0时说明已经装了20条
                if (i%20==0){
                    //将20条sql发送给数据库执行，并清除sql语句释放内存
                    preparedStatement.executeBatch();
                    preparedStatement.clearBatch();
                }

            }

            //因为1001不是20的倍数，所以还剩余最后一条在sql语句列表中，需要将其写出
            preparedStatement.executeBatch();
            preparedStatement.clearBatch();


        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
